1. Field of the Invention
Illustrative, non-limiting embodiments of the present invention relate generally to distributed shared file systems (DSFS), and more particularly to a method for performing snapshots in distributed shared file systems.
2. Description of the Related Art
As the capacity of data storage systems continues to increase to meet user demands, the need to backup the data that the system stores likewise has been increasing. Also, during the backup process, the reliability of the storage system should be maintained by disrupting access to the storage system as little as possible and ensuring that data is not lost or corrupted during the backup process.
One technique for increasing the reliability of the storage system is a “snapshot” technique. A “snapshot” is a copy of a file, disk, or other storage unit at a certain point in time. In one implementation, a system administrator of the system initiates a request for performing the snapshot.
During one type of snapshot technique, the data stored in a storage unit is copied at regular time intervals to a single, dedicated storage device, or to a different storage device, to create a snapshot. Snapshots can be used for various data processing and storage management functions, including, but not limited to, transaction processing, multiple concurrent user access, software debugging, etc. After the snapshot is created, it may be stored as backup data in a different storage device, such as a tape drive or an optical disk.
After the snapshot of the data is created, the storage system may lose or incorrectly change a program or data due to a human error or a system malfunction. In such a case, the program, data or the entire content of the storage unit, as it existed at the time of the snapshot, can be restored from the snapshot.
In one example, a snapshot may be created by copying data from a production data set, which is stored at a particular storage location, to a snapshot copy data set. During the creation of the snapshot, the system cannot write new data to the storage location until the original data stored in the storage location has been copied to create the snapshot copy data set.
As such, while a snapshot is created, the system typically must stop or suspend all of the application programs that may change the related files or data contained in the particular storage location. Otherwise, the programs would change the stored data while it is being copied, and thus, the snapshot may contain erroneous data or programs or may not accurately reflect the data that was supposed to be stored at the time that the snapshot was created. However, suspending or stopping all of the application programs of the storage system is inefficient and is especially challenging in a distributed shared file system in which one or more files or application programs are shared among multiple clients.
FIG. 1 shows an exemplary diagram of a related art distributed shared file system 100 which comprises a plurality of independent network nodes 110, a plurality of storage devices 120, and a plurality of clients 140-1 to 140-N. The storage devices 120 are connected to the nodes 110 via a connection, including but not limited to a fiber channel (FC) switch 130. Furthermore, the storage device 120 comprise various devices, such as tape drives, magnetic disk drives, optical disk drives, a redundant array of independent disks (RAID), etc.
The network nodes 110 are also connected to the clients 140-1 to 140-N through a connection 150, such as a switch, a gigabit Ethernet, or an InfiBand connection. Also, the clients 140-1 to 140-N may use virtually any type of file sharing protocol, such as a network file system protocol (NFS), a common internet file system protocol (CIFS), a direct access file system protocol (DAFS), an AppleShare for file access, an iSCSI for block access, etc.
In the example shown in FIG. 1, the nodes 110 are linked together via a dedicated interconnect network 160. However, one skilled in the art will appreciate that the nodes 110 may be connected together via a wide area network (WAN), a metropolitan area network (MAN), a local area network (LAN), etc. By linking the nodes 110 together, the distributed shared file system 100 can combine dispersed data centers into a single, unified storage device. Moreover, in one example, each node 110 may be responsible for a domain, which is a subset or a range of designated data objects that can be identified by their unique key. Moreover, in one implementation, a file system domain (FSD), which the nodes 110 run, may maintain the domain. A non-limiting example of the distributed shared file system 100 is disclosed in U.S. Patent Application Publication No. 2004/0158663, entitled “Interconnect Topology for a Scalable Distributed Computer System,” which is hereby incorporated by reference for all purposes.
In order to create a snapshot of the system 100, one of the clients 140-1 to 140-N may execute a snapshot command or request. In response, the node 110 blocks or suspends all tasks that the system 100 is currently executing when the snapshot is requested and blocks or suspends all tasks that are initiated after the request. These tasks are blocked or suspended until the process for creating the snapshot is complete. Accordingly, this process halts the operation of system 100 for a long period of time, thereby decreasing its efficiency. Moreover, some tasks include multiple sub-tasks, and as a result, suspending these types of tasks prevents the tasks from properly terminating and may cause data loss.